/**
 * 场景类型
 */
var SceneType = {
  QRCode: '二维码' 
}
/**
 * 场景信息
 *  https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/scene.html
 *  https://developers.weixin.qq.com/miniprogram/dev/reference/scene-list.html
 */
var SceneInfo = {
  1001: { type: null, explain: '发现栏小程序主入口，「最近使用」列表（基础库2.2.4版本起包含「我的小程序」列表' },
  1005: { type: null, explain: '微信首页顶部搜索框的搜索结果页' },
  1006: { type: null, explain: '发现栏小程序主入口搜索框的搜索结果页' },
  1007: { type: null, explain: '单人聊天会话中的小程序消息卡片' },
  1008: { type: null, explain: '群聊会话中的小程序消息卡片' },
  1011: { type: SceneType.QRCode, explain: '扫描二维码' },
  1012: { type: SceneType.QRCode, explain: '长按图片识别二维码' },
  1013: { type: SceneType.QRCode, explain: '扫描手机相册中选取的二维码' },
  1014: { type: null, explain: '小程序模板消息' },
  1017: { type: null, explain: '前往小程序体验版的入口页' },
  1019: { type: null, explain: '微信钱包（微信客户端7.0.0版本改为支付入口）' },
  1020: { type: null, explain: '公众号 profile 页相关小程序列表' },
  1022: { type: null, explain: '聊天顶部置顶小程序入口（微信客户端6.6.1版本起废弃）' },
  1023: { type: null, explain: '安卓系统桌面图标' },
  1024: { type: null, explain: '小程序 profile 页' },
  1025: { type: null, explain: '扫描一维码' },
  1026: { type: null, explain: '发现栏小程序主入口，「附近的小程序」列表' },
  1027: { type: null, explain: '微信首页顶部搜索框搜索结果页「使用过的小程序」列表' },
  1028: { type: null, explain: '我的卡包' },
  1029: { type: null, explain: '小程序中的卡券详情页' },
  1030: { type: null, explain: '自动化测试下打开小程序' },
  1031: { type: null, explain: '长按图片识别一维码' },
  1032: { type: null, explain: '扫描手机相册中选取的一维码' },
  1034: { type: null, explain: '微信支付完成页' },
  1035: { type: null, explain: '公众号自定义菜单' },
  1036: { type: null, explain: 'App 分享消息卡片' },
  1037: { type: null, explain: '小程序打开小程序' },
  1038: { type: null, explain: '从另一个小程序返回' },
  1039: { type: null, explain: '摇电视' },
  1042: { type: null, explain: '添加好友搜索框的搜索结果页' },
  1043: { type: null, explain: '公众号模板消息' },
  1044: { type: null, explain: '带 shareTicket 的小程序消息卡片 详情' },
  1045: { type: null, explain: '朋友圈广告' },
  1046: { type: null, explain: '朋友圈广告详情页' },
  1047: { type: null, explain: '扫描小程序码' },
  1048: { type: null, explain: '长按图片识别小程序码' },
  1049: { type: null, explain: '扫描手机相册中选取的小程序码' },
  1052: { type: null, explain: '卡券的适用门店列表' },
  1053: { type: null, explain: '搜一搜的结果页' },
  1054: { type: null, explain: '顶部搜索框小程序快捷入口（微信客户端版本6.7.4起废弃）' },
  1056: { type: null, explain: '聊天顶部音乐播放器右上角菜单' },
  1057: { type: null, explain: '钱包中的银行卡详情页' },
  1058: { type: null, explain: '公众号文章' },
  1059: { type: null, explain: '体验版小程序绑定邀请页' },
  1064: { type: null, explain: '微信首页连Wi - Fi状态栏' },
  1067: { type: null, explain: '公众号文章广告' },
  1068: { type: null, explain: '附近小程序列表广告（已废弃）' },
  1069: { type: null, explain: '移动应用' },
  1071: { type: null, explain: '钱包中的银行卡列表页' },
  1072: { type: null, explain: '二维码收款页面' },
  1073: { type: null, explain: '客服消息列表下发的小程序消息卡片' },
  1074: { type: null, explain: '公众号会话下发的小程序消息卡片' },
  1077: { type: null, explain: '摇周边' },
  1078: { type: null, explain: '微信连Wi - Fi成功提示页' },
  1079: { type: null, explain: '微信游戏中心' },
  1081: { type: null, explain: '客服消息下发的文字链' },
  1082: { type: null, explain: '公众号会话下发的文字链' },
  1084: { type: null, explain: '朋友圈广告原生页' },
  1089: { type: null, explain: '微信聊天主界面下拉，「最近使用」栏（基础库2.2.4版本起包含「我的小程序」栏）' },
  1090: { type: null, explain: '长按小程序右上角菜单唤出最近使用历史' },
  1091: { type: null, explain: '公众号文章商品卡片' },
  1092: { type: null, explain: '城市服务入口' },
  1095: { type: null, explain: '小程序广告组件' },
  1096: { type: null, explain: '聊天记录' },
  1097: { type: null, explain: '微信支付签约页' },
  1099: { type: null, explain: '页面内嵌插件' },
  1102: { type: null, explain: '公众号 profile 页服务预览' },
  1103: { type: null, explain: '发现栏小程序主入口，「我的小程序」列表（基础库2.2.4版本起废弃）' },
  1104: { type: null, explain: '微信聊天主界面下拉，「我的小程序」栏（基础库2.2.4版本起废弃）' },
  1129: { type: null, explain: '微信爬虫访问 详情' },
};

/**
 * 场景判断
 * 开发者可以通过下列方式获取场景值：
 * 对于小程序，可以在 App 的 onLaunch 和 onShow，或wx.getLaunchOptionsSync 中获取上述场景值。
 * 对于小游戏，可以在 wx.getLaunchOptionsSync 和 wx.onShow 中获取上述场景值
 * 其中只有在传递 1020、1035、1036、1037、1038、1043 这几个场景值时，才会返回referrerInfo.appId
 */
function sceneInfo(s) {
  var sceneInfo = SceneInfo[s];
  if (null != sceneInfo){
    sceneInfo.value = s;
    return sceneInfo;
  }else{
    return { value: s, type: null, explain: '未知入口' };
  }
}

module.exports.SceneType = SceneType;
module.exports.sceneInfo = sceneInfo;



